package com.xiaoxin.experience.system.rate;

import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

/**
 * @author xiaoxin
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RateLimit {

    @AliasFor("key")
    String value() default "";

    /**
     * 令牌桶的key,默认使用方法全路径
     */
    @AliasFor("value")
    String key() default "";

    /**
     * 接口请求速率
     */
    int rate() default 10;

    /**
     * 生成令牌的时间周期,默认1000,单位:毫秒
     */
    long interval() default 1000;
}
